package com.fowo.api.ptt.service;

import cn.hutool.db.Entity;
import com.fowo.api.ptt.enitty.PrintTemplateType;
import com.fowo.api.ptt.model.PrintTemplateLoadData;
import com.fowo.api.ptt.model.PrintTemplateLoadSql;

import java.util.List;

/**
 * 打印类型服务接口
 * @author yl_ls
 */
public interface PrintTemplateTypeService {


    /**
     * 新增打印类型
     * @param printTemplate 打印类型
     */
    Long create(PrintTemplateType printTemplate);

    /**
     * 更新打印类型
     * @param printTemplate 打印类型
     */
    void update(PrintTemplateType printTemplate);

    /**
     * 删除指定编号的打印类型
     * @param id 打印类型编号
     */
    void delete(Long id);

    /**
     * 数据获取类型sql时预览接口
     * @param printTemplateLoadSql
     * @return
     * @throws Exception
     */
    List<Entity> runSql(PrintTemplateLoadSql printTemplateLoadSql) throws Exception;

    /**
     * 报表获取真实打印数据
     * @param templateLoadData 参数
     * @return 返回打印数据
     */
    Object getPrintData(PrintTemplateLoadData templateLoadData);
}
